/*
Copyright (c) [2019年5月1日] [吴超]
[MBT_studio] is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan PSL v2.
You may obtain a copy of Mulan PSL v2 at:
		 http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
*/
#pragma once


#include "向量.h"
#include <cuda_runtime.h>

typedef struct {
	dim3	m_计算维度3D;
	dim3	m_计算维度2D;
	uint64	m_内存用量;
}S_计算维度;

typedef struct {

}S_邻接信息缓存;

typedef struct {
	uint32	m_Key;
	uint32	m_顶点索引;
}S_cu邻接键值;


typedef struct {
	float32 m_单元大小;
	float32 m_点半径;
	uint8	m_邻接最大数量;
}S_邻接点属性;


/*typedef struct {
	uint32* m_体素索引;
	uvec2*	m_排序索引;
}S_邻接点属性;*/


typedef struct {
	uvec2* m_排序索引;
	uint32* m_体素索引;
}S_cu邻接体素索引;

typedef struct {
	uint32*	m_邻接索引;
	uint8*	m_邻接数量;
}S_cu邻接点索引组;






void f_graph_分组顶点构建邻接信息(vec3* vert1, uint64 v1num, vec3* vert2, uint64 v2num, S_cu邻接点索引组& D邻接索引, S_cu邻接点索引组& S邻接索引, S_邻接点属性);

void f_graph_粒子光滑(vec3* data, uint64 num, uint32 keys, float32 单元大小);








